/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.edu.infnet;

import javax.swing.JOptionPane;

/**
 *
 * @author brunnosantos
 */
public final class BenchMark {

    public void executaProcesso(int numeroElementos, int calcularProgram) {
        int numeroAleatorio, somaElementos = 0, menorNumero = 9999999, maiorNumero = 0;
        String tituloJanela = "Projeto Integrado - Teste de Benchmark";
        /* Início de Contagem de Tempo da Execução */
        long inicio = System.currentTimeMillis();
        for (int i = 1; i <= numeroElementos; i++) {
            numeroAleatorio = (int) (Math.random() * 500001); /* Gerando aleatórios de 0 a 500.000 */
            somaElementos = numeroAleatorio + somaElementos; /* Somando os valores aleatórios */
            if (numeroAleatorio > maiorNumero) { /* Atribuição do maior valor */
                maiorNumero = numeroAleatorio;
            }
            if (numeroAleatorio < menorNumero) { /* Atribuição do menor valor */
                menorNumero = numeroAleatorio;
            }

        }
        /**
         * Concatenando Strings utilizando a classe StringBuffer(), reduzindo o
         * comprometimento do sistema com o garbage collector *
         */
        StringBuffer resposta = new StringBuffer().append("\nNúmero de elementos digitado: "+numeroElementos);
        resposta.append("\nSoma dos Elementos: " + somaElementos);
        if (calcularProgram == 2) {
            resposta.append("\nMaior número gerado: " + maiorNumero);
        }
        if (calcularProgram == 3) {
            resposta.append("\nMaior número gerado: " + maiorNumero + "\nMenor número gerado: " + menorNumero);
        }
        /* Fim da contagem do Tempo de Execução*/
        long fim = System.currentTimeMillis();
        /**
         * Fim da concatenação de Strings *
         */
        resposta.append("\n\nTempo de Execução: " + (fim - inicio) + " milissegundos");

        JOptionPane.showMessageDialog(null, resposta, tituloJanela, JOptionPane.INFORMATION_MESSAGE);

    }
}
